﻿using System;

namespace QueuingSimulation
{
    public class Client
    {

        #region Events

        public event EventHandler<ServerStateChangeEventArgs> StateChange;

        protected virtual void OnStateChange(ServerStateChangeEventArgs e)
        {
            EventHandler<ServerStateChangeEventArgs> handler = StateChange;
            if (handler != null) handler(this, e);
        }

        #endregion

        public int ID { get; set; }
        public int EnterTime { get; set; }
        public int ServiceStartTime { get; set; }
        public int ServiceDurationTime { get; set; }
        public int ExitTime { get; set; }
        public int WaitInQueueTime { get; set; }
        public int TotalWaitingTime { get; set; }
        public string DedicatedServer { get; set; }
    }
    public abstract class RangeTime
    {
        public int From { get; set; }
        public int To { get; set; }
    }
    public class ClientEnterRangeTime : RangeTime { }
}
